<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//闭包是指有权访问另一个函数作用域中的变量的函数
			//创建闭包的常见方式，就是在一个函数内部创建另一个函数
			        function createComparisonFunction(propertyName){
						return function(object1,object2){
							var value1 = object1[propertyName];
							var value2 = object2[propertyName];
							if(value1 < value2){
								return -1;
							}else if(value1 > value2){
								return 1;
							}else{
								return 0;
							}
						}
					}
					var arr = [{id:5,name:'xx',age:24},{id:4,name:'ls',age:24}];
					arr.sort(createComparisonFunction('name'));
					console.log(arr);

               //7.2.1 闭包与变量
                   //闭包只能取得包含函数中任何变量的最后一个值。
                   
               //7.2.2 关于this对象
                     //this对象是在运行时基于函数的执行环境绑定的：在全局函数中，this 等于 window
                     //而当函数被作为某个对象的方法调用时，this 等于那个对象。
                     
                     //每个函数在被调用时都会自动取得两个特殊变量：this 和 arguments。
                     //内部函数在搜索这两个变量时，只会搜索到其活动对象为止，因此永远不可能直接访问外部函数中的这两个变量
		</script>
	</body>
</html>
